package com.cskaoyan.javase.oop1._10static._4notice;

import org.junit.Test;

/**
 * 只存在静态成员变量，不存在"静态局部变量"，包括静态方法中也没有"静态局部变量"。
 * 局部变量，已经被方法限制了作用域，不能用static修饰它！
 *      实际上局部变量几乎不能用任何修饰符,只有一个修饰符可以修饰它(final)
 *
 * @since 16:35
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        // Non-statics method 'test()' cannot be referenced from a statics context
        // 在静态上下文(因为Java中的static位置不止静态方法)中,是无法直接调用非静态方法的
        // test();
        // statics int num = 100;
    }

    public void test() {
    }


    @Test
    public void method() {
        // 777
        System.out.println(A.staticNum);
        A a = new A(666);
        // 666
        System.out.println(a.num);
        // 888
        System.out.println(A.staticNum);
    }
}

class A {
    int num;
    static int staticNum = 777;

    public A(int num) {
        this.num = num;
        // 静态成员变量也可以在构造器中赋值
        staticNum = 888;
    }
}
